JSON ডেটা Validate করার প্রক্রিয়া
JSON (JavaScript Object Notation) একটি জনপ্রিয় ডেটা ফরম্যাট যা সাধারণত ডেটা বিনিময়ের জন্য ব্যবহৃত হয়। এটি সাধারণত অ্যাপ্লিকেশন বা সার্ভিসের মধ্যে ডেটা প্রেরণ এবং গ্রহণের সময় ব্যবহৃত হয়। PHP-তে JSON ডেটা validate করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যাতে নিশ্চিত করা যায় যে ডেটাটি সঠিক JSON ফরম্যাটে আছে এবং এটি পছন্দসই কাঠামো অনুসরণ করছে।
JSON ডেটা Validation এর পদ্ধতি
PHP তে JSON ডেটা validate করার জন্য প্রধানত দুটি ধাপ অনুসরণ করতে হয়:
- JSON Syntax Validation: JSON ডেটা সঠিকভাবে ফরম্যাট করা হয়েছে কি না তা পরীক্ষা করা।
- Schema Validation (Optional): JSON ডেটার কাঠামো বা স্কিমা যাচাই করা, অর্থাৎ এটি প্রত্যাশিত ফিল্ড এবং মান আছে কি না।
1. JSON Syntax Validation
JSON Syntax Validation করার জন্য PHP তে json_decode() এবং json_last_error() ফাংশন ব্যবহার করা হয়।
Step 1: json_decode() ব্যবহার করা
json_decode() ফাংশনটি একটি JSON স্ট্রিংকে PHP অ্যাসোসিয়েটিভ অ্যারে বা অবজেক্টে রূপান্তর করে।
$jsonData = '{"name": "John", "age": 30, "city": "New York"}';
$decodedData = json_decode($jsonData, true); // True returns an associative array
// Check if JSON is valid
if (json_last_error() === JSON_ERROR_NONE) {
echo "Valid JSON data!";
} else {
echo "Invalid JSON data!";
}ব্যাখ্যা:
json_decode(): এই ফাংশনটি JSON স্ট্রিংকে PHP অ্যারে বা অবজেক্টে রূপান্তর করে।json_last_error(): এটি শেষjson_decode()কলের ত্রুটি স্ট্যাটাস চেক করে। যদি JSON সঠিক না হয়, এটি একটি ত্রুটি কোড রিটার্ন করবে।JSON_ERROR_NONEএর মানে হল যে JSON সঠিকভাবে ডিকোড হয়েছে।
JSON Syntax Validation এর উদাহরণ:
$jsonData = '{"name": "Alice", "age": 25}'; // Valid JSON
$invalidJson = '{"name": "Bob", "age": 30'; // Invalid JSON (missing closing brace)
$decodedValid = json_decode($jsonData);
$decodedInvalid = json_decode($invalidJson);
if (json_last_error() === JSON_ERROR_NONE) {
echo "Valid JSON\n";
} else {
echo "Invalid JSON\n";
}
if (json_last_error() !== JSON_ERROR_NONE) {
echo "Error: " . json_last_error_msg() . "\n"; // Display the error message
}আউটপুট:
Valid JSON
Error: Syntax errorএখানে, প্রথম JSON স্ট্রিংটি সঠিকভাবে ডিকোড হয়েছে, কিন্তু দ্বিতীয় JSON স্ট্রিংটি ভুল ফরম্যাটের (closing brace অনুপস্থিত) কারণে invalid।
2. Schema Validation (Optional)
যখন আপনি JSON ডেটা পেয়েছেন এবং নিশ্চিত হতে চান যে এটি একটি নির্দিষ্ট কাঠামো বা স্কিমা অনুসরণ করছে (যেমন একটি নির্দিষ্ট ফিল্ড বা টাইপের মান থাকা উচিত), তখন আপনি JSON Schema Validation ব্যবহার করতে পারেন। PHP-তে স্কিমা যাচাই করার জন্য কিছু থার্ড-পার্টি লাইব্রেরি উপলব্ধ রয়েছে, যেমন:
- Justine: একটি JSON schema ভ্যালিডেশন লাইব্রেরি।
- JsonSchema: একটি JSON schema validation লাইব্রেরি যা আপনাকে নির্দিষ্ট কাঠামোর সাথে JSON ডেটা যাচাই করতে সাহায্য করে।
Example of JSON Schema Validation:
ধরা যাক, আমাদের একটি JSON ডেটা রয়েছে এবং আমরা নিশ্চিত করতে চাই যে এটি একটি নির্দিষ্ট স্কিমা অনুযায়ী হওয়া উচিত। নিচে একটি উদাহরণ দেওয়া হলো যেখানে JSON স্কিমা দিয়ে ডেটা যাচাই করা হবে।
Install JsonSchema Library:
প্রথমে, Composer দিয়ে
justinrainbow/json-schemaলাইব্রেরি ইন্সটল করুন:composer require justinrainbow/json-schema- JSON Schema Validation Example:
require 'vendor/autoload.php'; // Composer autoload
use JsonSchema\Validator;
$jsonData = '{"name": "John", "age": 30}';
$schema = '{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
}
},
"required": ["name", "age"]
}';
$data = json_decode($jsonData);
$schema = json_decode($schema);
$validator = new Validator();
$validator->validate($data, $schema);
if ($validator->isValid()) {
echo "JSON data is valid according to the schema!";
} else {
echo "JSON data is invalid according to the schema!";
foreach ($validator->getErrors() as $error) {
echo "Error: " . $error['message'] . "\n";
}
}আউটপুট:
JSON data is valid according to the schema!এখানে, JSON স্কিমা যাচাই করা হয়েছে যে name এবং age প্রপার্টি আছে এবং সেগুলো যথাক্রমে string এবং integer টাইপের।
3. Tips for JSON Validation
- Error Handling: JSON ডেটা ভ্যালিডেশন করার সময়, যে কোনো ত্রুটি বা ভুল ডেটা সঠিকভাবে হ্যান্ডেল করা উচিত যাতে আপনার অ্যাপ্লিকেশন ক্র্যাশ না করে।
- Strict Schema Validation: যদি আপনার অ্যাপ্লিকেশন একটি নির্দিষ্ট কাঠামো বা স্কিমার উপর নির্ভর করে, তাহলে স্কিমা যাচাই ব্যবহারের পরামর্শ দেওয়া হয়, যাতে আপনার JSON ডেটা সঠিকভাবে ফর্ম্যাট করা হয় এবং নির্দিষ্ট ফিল্ডগুলি থাকে।
- Data Sanitization: JSON ডেটা যে কোনো সময়ে ব্যবহারকারী বা বাহ্যিক উৎস থেকে আসতে পারে, তাই এর মধ্যে sanitization করা গুরুত্বপূর্ণ।
Conclusion
PHP তে JSON validation একটি গুরুত্বপূর্ণ প্রক্রিয়া যা JSON ডেটার সঠিকতা নিশ্চিত করে। আপনি syntax validation করতে পারেন json_decode() এবং json_last_error() ফাংশন ব্যবহার করে এবং schema validation করার জন্য আপনি লাইব্রেরি ব্যবহার করতে পারেন যা JSON ডেটার কাঠামো নিশ্চিত করতে সাহায্য করে। Proper validation আপনাকে নিরাপত্তা এবং স্থিতিশীলতা নিশ্চিত করতে সহায়ক হবে, বিশেষ করে যখন আপনি একাধিক উৎস থেকে JSON ডেটা গ্রহণ করছেন।